package com.chinawayltd.ews.sample.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.chinawayltd.ews.sample.model.TDriverExtend;
import com.chinawayltd.ews.sample.model.openApi.TaskScreenDTO;
import com.chinawayltd.ews.sample.model.openApi.VehicleStatusDTO;
/**
 * @program: greeProject-timingTaskCenter
 * @description 
 * @author: chenxin
 * @create: 2018年4月27日 上午1:25:21
 */
@Mapper
public interface TaskProducerMapper {

	List<Map<String, Object>> findTaskDef();
	
	Map<String, Object> getTaskDef(String taskId);
	/**
	 * 根据任务查询车辆任务执行状态
	 * @author: chenxin
	 * @date: 2018年4月27日
	 * @return
	 */
	List<VehicleStatusDTO> getVehicleStatusList();
	/**
	 * 根据车辆查询执行任务的总时长和任务总数
	 * @author: chenxin
	 * @date: 2018年4月27日
	 * @param vehicleId
	 * @param string2 
	 * @param string 
	 * @return
	 */
	Map<String, Object> getTaskTimeAndNumByVid(@Param("vehicleId")Long vehicleId, @Param("from")String from, @Param("to")String to);
	/**
	 * 任务总数
	 * @author: chenxin
	 * @date: 2018年4月27日
	 * @param vehicleId
	 * @param string2 
	 * @param string 
	 * @return
	 */
	Map<String, Object> getTaskNum(@Param("from")String from, @Param("to")String to);
	
    /**
     * 监控大屏的任务列表
     * @return
     */
    List<TaskScreenDTO> listAllTaskOnScreen();
    
	/**
	 * 通过任务id查询物料明细
	 * @author: chenxin
	 * @date: 2018年5月2日
	 * @param orderId
	 * @return
	 */
    List<Map<String, Object>> listOrderDetailByTaskId(@Param("taskId")Long taskId);
    
	/**
	 * 查询任务中司机连续上班的天数
	 * @author: chenxin
	 * @date: 2018年5月12日 下午7:51:52
	 * @param beginTime
	 * @param endTime
	 * @return
	 */
	List<TDriverExtend> getDriverWorkData(@Param("beginTime")String beginTime, @Param("endTime")String endTime);
	/**
	 * 修改司机连续上班信息
	 * @author: chenxin
	 * @date: 2018年6月7日 上午11:19:12
	 * @param beginTime
	 * @param endTime
	 */
	void updateInDriverWorkData(@Param("beginTime")String beginTime, @Param("endTime")String endTime);
	void updateNotInDriverWorkData(@Param("beginTime")String beginTime, @Param("endTime")String endTime);
}
